package cn.tedu.oopextends;

/**
 * @Author 金帮嘉诚
 * @Date 2021-06-09 周三 19:46
 */
/*本类用于测试继承中成员方法的使用*/
public class TestExtends2 {
    public static void main(String[] args) {
        Father2 f=new Father2();
        Son2 s=new Son2();
        f.eat();
        s.study();
        s.eat();
    }
}
class Father2{
    public Father2() {
    }
    public void eat(){
        System.out.println("爸爸爱吃肉");
    }
}
class Son2 extends Father2{
    public Son2() {
    }
    public void study() {
        System.out.println("子类特有的方法");
    }
    /**
     * OCP原则：面向修改关闭，面向拓展开放
     * --只允许功能拓展，不允许修改原来的代码
     *
     * */
    /**
     * 重写的规则：(两同两小一大)
     * 和父类的方法签名保持一致 方法签名：【方法名&参数列表】
     * 然后取修改子类中方法的实现  父类的功能没有被改变
     *
     * 子类返回值类型 <=父类返回值类型
     * 子类异常类型<=父类异常类型
     *
     * 子类修饰符权限>=父类修饰符权限
     * */
    @Override/**这是一个注解，可以理解为一个标签，用来标记这是一个重写的方法
     写对了才能放置这个注解*/
    public void eat(){
        System.out.println("子类的Eat");
    }
    //@Override不能添加
    public void eat(int i){
        System.out.println("子类+"+i);
    }

}